module.exports = (app) => {
    /**
     * 基础控制器
     * 所有控制器都继承自该控制器
     */
    return class BaseController {
        constructor() {
            this.app = app
            this.config = app.config
        }

        /**
         * 成功响应
         * @param {*} ctx Koa上下文对象
         * @param {*} data 成功数据
         */
        success(ctx, data) {
            ctx.status = 200
            ctx.body = {
                success: true,
                data
            }
        }

        /**
         * 失败响应
         * @param {*} ctx Koa上下文对象
         * @param {*} message 失败消息
         * @param {*} code 失败码
         */
        fail(ctx, message, code) {
            ctx.status = code
            ctx.body = {
                success: false,
                message,
                code
            }
        }
    }
}